package org.example.dao;

import org.example.model.UserInfo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

//正对t_user表的持久化
public class UserDao {
    /*
        登录逻辑  根据用户名和密码查询数据库
        @param con 数据库连接
        @param userInfo 查询条件 根据用户信息查询
        @param 数据库内查询用户
     */
    public UserInfo login(Connection con,UserInfo userInfo) throws SQLException {
        //返回实体
        UserInfo resultUser=null;
        //username password
        String sql="select username,password from t_user where username=?  and password=?";
        /*
        1.通过Statement 查询 这个对象查询数据库 会有sql注入风险
        2.通过PrepareStatement 通过预编译 查询
         */
        PreparedStatement preparedStatement=con.prepareStatement(sql);
        //设置占位符参数
        preparedStatement.setString(1,userInfo.getUserName());
        preparedStatement.setString(2,userInfo.getPassword());

        //执行sql查询
        ResultSet rs=preparedStatement.executeQuery();
        //ResultSet 结果集 是航结构 每一行是每条数据库中表数据
        //每行又有列数据 列结构中是每列字段的数据
        //通过Set数据结构的自带结构器，去遍历数据
        if(rs.next()){
            //获取数据
           resultUser= new UserInfo();
           //获取每列数据 username ,password
            resultUser.setUserName(rs.getString("username"));
            resultUser.setPassword(rs.getString("password"));
        }
        return resultUser;
    }
}
